The single most common source of confusion is that the = sign means two different things depending on where it appears. Read this section once and the rest of search becomes predictable.

There are three matching modes:

Mode How you trigger it What it matches Substring? Fuzzy (typos)?
Default type words with no prefix whole words and substrings, anywhere in title, content or attributes, relevance-ranked Yes Yes
Exact full-text a leading = (e.g. =sync) the exact whole word or phrase, ignoring surrounding punctuation No No
Attribute / property equality = inside a #label=value or note.property=value clause the entire attribute or property value, exactly No No

Default matching (no prefix)

Rule: typing words with no prefix finds notes that contain those words anywhere in the title, content or attributes, as whole words or as substrings. The closest matches are ranked first.

Query Example note content Matches? Why
sync please sync the folders Yes (ranked higher) contains the exact word sync
sync synchronize the database now Yes (ranked lower) sync is a substring of synchronize

Exact match with the = prefix

Rule: a leading = switches the full-text search to exact matching. It finds the whole word or phrase only, ignoring surrounding punctuation, with no substring and no fuzzy matching. Use it when a normal search returns too many near-matches.

Query Example note content Matches? Why
=sync see (sync) mode Yes (sync) is the whole word sync; punctuation is ignored
=sync in sync, then continue Yes sync, is the whole word sync
=sync he said "sync" out loud Yes "sync" is the whole word sync
=sync synchronize the database now No = never matches substrings
=sync please send the file No = never matches typos / fuzzy

To match an exact phrase, quote it after the = (single, double or backtick quotes all work). The phrase must appear as consecutive words, but punctuation between or around them is ignored:

Query Example note (title or content) Matches? Why
="project plan" title Project Plan Yes the title is exactly the phrase
="project plan" the (project plan) is ready to share Yes the consecutive phrase appears; punctuation is ignored
="project plan" the plan for this project is late No the words are present but not consecutive

Attribute and property equality (=, !=)

Rule: when = compares an attribute or property, as in #label=value or note.title=value, it is strict full-value equality: the whole value must equal what you typed, ignoring case and diacritics. This is not word matching. != inverts it.

The examples below assume four notes: Austria (#capital=Vienna), Somewhere (#capital=Vienna Austria), Czech Republic (#capital=Prague) and Switzerland (#capital=Zürich).

Query Example label value Matches? Why
#capital=Vienna Vienna Yes the whole value equals Vienna
#capital=Vienna Vienna Austria No the whole value is Vienna Austria, not Vienna
#capital="Vienna Austria" Vienna Austria Yes quote a multi-word value to match it in full
#capital=Zurich Zürich Yes equality ignores diacritics
#capital!=Vienna Prague Yes != matches every value that is not Vienna
#capital!=Vienna Vienna No != excludes the exact value

Quick search relaxes this. The Quick search bar and autocomplete treat an attribute = as "contains", so #capital=Vienna typed there also matches Vienna Austria. The strict full-value equality described here applies only in the full Search.

Fuzzy operators (~= and ~*)

Rule: the fuzzy operators tolerate typos. ~= (fuzzy-equals) matches a value that is a close whole-word variant of your term. ~* (fuzzy-contains) matches when your term appears anywhere inside the value, either as a fragment or as a near-miss. Both work on note properties such as note.title and note.content, and on labels (#label). Fuzzy operators accept terms of at least 3 characters, though how many typos each term tolerates depends on its length — see Fuzzy tolerance below.

The examples assume a note titled Books carrying the label #author=Tolkien, and a note whose content is learn programming today.

Query Example value Matches? Why
note.title ~= boks title Books Yes one edit away from books
#author ~= tolkein author Tolkien Yes tolkein is a typo of tolkien
note.content ~* progr learn programming today Yes progr is a fragment of programming
note.content ~* programing learn programming today Yes programing is one edit from programming

Fuzzy tolerance

Rule: how many typos are tolerated depends on the length of your search term. Short terms must match exactly, because a single edit is enough to turn one short word into an unrelated one; longer terms have greater tolerance.

Term length Edits allowed
1–3 characters 0 (exact only)
4–6 characters 1
7+ characters 2
Query Term length Example note content Matches? Why
cat 3 a bright red car No No edits are allowed below 4 characters, so cat does not reach car
carr 4 a blue debit card Yes 1 edit is within budget for 4–6 character terms
ceck 4 the latest tech trends No ceck→tech needs 2 edits; only 1 is allowed at this length
combinef 8 the values were combined together Yes combinef→combined is 1 edit; up to 2 are allowed at 7+ characters

Relevance ranking

Rule: results are ordered by how well they match, not merely whether they match. Exact whole-word and phrase matches rank above substring and fuzzy matches, and a note where your words appear as a consecutive phrase outranks one where they are scattered.

Query Ranked higher Ranked lower Why
sync please sync the folders synchronize the database now exact word beats substring
you and me I like you and me as a phrase the menu is here and you know it consecutive phrase beats scattered words

What is searchable

A search looks at more than the visible body text. All of the following are indexed and searchable:

The last point is the least obvious: if a note's only content is a reference link to another note, searching for that other note's title still finds the linking note.

Query Setup Matches? Why
special topic a note whose only content is a reference link to a note titled Special Topic Yes, and the linked target ranks first the target's title is indexed into the linking note's searchable text
special the same note (only a reference link to Special Topic) Yes, one word from the target's title is enough the indexed title is normalized just like body text, so even one lowercased word matches
zurich a note whose only content is a reference link to a note titled Zürich Yes the indexed title has its accents normalized, so the plain form matches the accented title

Diacritics

Rule: accents are normalized on both sides, so an accented word and its plain form match each other.

Query Example note content Matches?
ktory slovo ktorý znamena nieco Yes
ktorý the word ktory appears here Yes

Regular expressions (%=)

Rule: the %= operator matches a property or label value against a regular expression.

Query Example note content Matches?
note.content %= 'colou?r' my favorite color of all Yes
note.content %= 'colou?r' my favourite colour of all Yes